package com.example.demos.web.controller;

import com.example.demos.dto.GoodsQueryParamDTO;
import com.example.demos.entity.Dep;
import com.example.demos.entity.Goods;
import com.example.demos.entity.GoodsType;
import com.example.demos.entity.Store;
import com.example.demos.service.GoodsTypeService;
import com.example.demos.util.PageBean;
import com.example.demos.util.PageParam;
import com.example.demos.util.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.List;

import static com.example.demos.util.ResultEnum.INTERNAL_SERVER_ERROR;


@Slf4j
@RestController
@RequestMapping("/v2")
public class GoodsTypeController {
    @Autowired
    private GoodsTypeService goodsTypeService;

    @GetMapping("/goodstype/listByPage")
    public Result<PageBean<List<GoodsType>>> listByPage(PageParam pageParam,String name) {
        PageBean<List<GoodsType>> select = goodsTypeService.select(pageParam,name);
        return Result.ok(select);
    }

    @PostMapping("//goodstype/add")
    public Result<Void> add(GoodsType goodsType) {
        log.info("新增商品种类名{}", goodsType.getName());
        int flag = goodsTypeService.add(goodsType);
        if(goodsType.getName()==null || "".equals(goodsType.getName())) flag=-1;
        return flag == 0 ?Result.bizErr("输入内容不能与已有内容重复"):
                flag==-1 ? Result.bizErr("输入不能为空") :Result.ok("添加成功");
    }

    @GetMapping("/goodstype/selectone")
    public Result<PageBean<GoodsType>> selectOne(Integer id) {
       log.info("输入类型名称");
        GoodsType goodsType = goodsTypeService.selectOne(id);
        return Result.ok(new PageBean<GoodsType>(1,goodsType));
    }

    @PostMapping("//goodstype/update")
    public Result<Void> update(GoodsType goodsType) {
        int flag = goodsTypeService.update(goodsType);
        if(goodsType.getName()==null || "".equals(goodsType.getName())) flag=-1;
        return flag == 0 ?Result.bizErr("输入内容不能与已有内容重复"):
                flag==-1 ? Result.bizErr("输入不能为空") :Result.ok("修改成功");

    }

    @DeleteMapping("/goodstype")
    public Result<Void> delete(Integer id){
        goodsTypeService.delete(id);
        return Result.ok("删除成功");
    }
}